#include<bits/stdc++.h>
using namespace std;
int n;
char k[100];
char s[10000][50];
int t1,t2;
char c[10000][50];
int pd()
{
	char t[10];
	int w=0,l=0;
	k[strlen(k)]='.';
	for(int i=0;i<=strlen(k);i++)
	{
		if((k[i]=='.'||k[i]==':')&&i!=strlen(k)) t[++w]=k[i];
		if(k[i]=='.'||k[i]==':')
		{
			int sum=0,lv=1;
			for(int j=i-1;j>=l;j--)
			{
				sum+=(k[j]-'0')*lv;
				lv*=10; 
			}
			if(i!=strlen(k)-1)
			{
				if(sum>=0&&sum<=255);
				else return 0;
			}
			else 
			{
				if(sum>=0&&sum<=65535);
				else return 0;
			}
			l=i+1;
		}
	}
	if(t[1]=='.'&&t[2]=='.'&&t[3]=='.'&&t[4]==':') return 1;
	else return 0;
}
int main()
{
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		char temp[10];
		scanf("%s",&temp);
		if(temp[0]=='S')
		{
			scanf("%s",&k);
			if(pd()==1)
			{
				int flag=1;
				for(int j=1;j<=t1;j++)
				{
					if(strcmp(k,s[j])==0) 
					{
						flag=0;
						break;
					}
				}
				if(flag==0) printf("FAIL");
				else
				{
					printf("OK");
					t1++;
					strcpy(s[t1],k);
				}
			}
			else printf("ERR");
			printf("\n");
		}
		else
		{
			scanf("%s",&k);
			if(pd()==1)
			{
				int flag=1;
				for(int j=1;j<=t2;j++)
				{
					if(strcmp(k,c[j])==0) 
					{
						flag=0;
						break;
					}
				}
				if(flag==0) printf("FAIL");
				else
				{
					flag=0;
					for(int j=1;j<=t1;j++)
					{
						if(strcmp(s[j],k)==0) 
						{
							flag=j;
							break;
						}
					}
					if(flag==0) printf("FAIL");
					else
					{
						printf("%d",flag);
						t2++;
						strcpy(c[t2],k);
					}
				}
			}
			else printf("ERR");
			printf("\n");
		}
	}
	return 0;
 } 
